Method and apparatus for providing personalized supplemental programming

ABSTRACT

A method and apparatus for providing personalized supplemental programming is provided. In a first embodiment, an apparatus comprising a first component for supplying supplemental programming, a second component operative to receive primary programming from an external source, and a processor agent coupled to the first and the second components. The processor agent being operative to evaluate the received primary programming for predetermined content criteria, and to provide appropriate ones of the supplemental programming based on the results of the evaluation.

RELATED APPLICATIONS

This non-provisional application claims priority to provisionalapplication No. 60/024,438 entitled Commentary Based on Content andKeywords, filed on Aug. 22, 1996, to Jean Goldschmidt, Tony Shah andDavid Hackson, and commonly assigned to Intel Corporation of SantaClara, Calif.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of entertainment systems and,in particular, to a method and apparatus for providing personalizedsupplemental programming in entertainment systems.

2. Background Information

Numerous advances have been made in recent years in the field ofentertainment systems. Many providers of programming content now offersupplemental programming content designed to complement thenormal/typical program information. For example, many televisionnetworks provide supplemental closed captioning of the audio informationto allow people who are hearing impaired to view and enjoy the network'sprogramming. The closed caption information is typically provided withinline 21 of the vertical blanking interval (VBI) of the televisionsignal. Another example of supplemental programming is the SupplementalAudio Programming (SAP) that is provided by many television networks,wherein the audio content of a broadcast is provided in an alternatelanguage, or other supplemental audio content directed to the broadcastis provided. Many entertainment systems allow the system user to enableor disable such supplemental broadcast services.

Other examples of supplemental programming exist throughout, forexample, the Internet. Many of the web sites throughout the Internet,for example, provide supplemental programming information. Suchinformation may be introduced by any of the intermediate routers betweenthe user and the host web site. In particular, many of the InternetService H Providers (ISP's) sell advertising space to local businesses,wherein the advertising will be displayed to all users browsing aparticular web site, or web site genre. However, the web sites thatprovide such supplemental programming information often rely on theuniform resource locator (URL) of the accessed web site to determinewhich web site is being browsed and, consequently, which supplementalinformation to provide. In other words, the ISP's do not evaluate thecontent of the information flow between the web site and the browser todetermine what supplemental programming information to provide. Inaddition, this supplemental information is not personalized. Rather, itis common to a particular genre of web sites and provided to each userof the ISP accessing a particular genre of web sites. For example, thoseusers viewing an automotive web site are likely to receive supplementalinformation regarding automotive products or services offered via theweb, however the same generic supplemental information is provided toall users of the web site.

Insofar as all of the supplemental programming of prior art systems issupplied by the broadcast networks or in the stream of broadcast, andthat such information is not truly personalized for the recipient ofsuch informnation, none of the prior art entertainment systems providepersonalized supplemental programming to users of entertainment systems.

Thus, a need exists for a method and apparatus for providingpersonalized supplemental programming content.

SUMMARY OF THE INVENTION

In accordance with the teachings of the present invention, a method andapparatus for automatically providing personalized supplementalprogramming is provided. In a first embodiment, an apparatus comprisinga first component for supplying supplemental programming, a secondcomponent operative to receive primary programming from an externalsource, and a processor agent coupled to the first and the secondcomponents. The processor agent being operative to evaluate the receivedprimary programming for predetermined content criteria, and to provideappropriate ones of the supplemental programming based on the results ofthe evaluation.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be described by way of exemplary embodiments,but not limitations, illustrated in the accompanying drawings in whichlike references denote similar elements, and in which:

FIG. 1 is a block diagram illustrating a system providing personalizedsupplemental programming, incorporating the teachings of the presentinvention;

FIG. 2 is a block diagram of a supplemental programming provider forevaluating primary programming content and providing personalizedsupplemental programming, in accordance with one embodiment of thepresent invention;

FIG. 3 illustrates an example of a supplemental programming databasesuitable for use by the supplemental programming provider of FIG. 2, inaccordance with one embodiment of the present invention;

FIG. 4 illustrates an example of a primary programming database suitablefor use by the supplemental programming provider of FIG. 2, inaccordance with one embodiment of the present invention;

FIG. 5 is a flow chart illustrating the method steps for providingpersonalized supplemental programming, in accordance with one embodimentof the present invention;

FIG. 6 is a flow chart illustrating the method steps for evaluatingprimary programming for predetermined content criteria, in accordancewith one embodiment of the present invention;

FIG. 7 is a block diagram of a computer system incorporating theteachings of the present invention; and

FIG. 8 is a block diagram illustrating the software elements inaccordance with one embodiment of the present invention.

DETAILED DESCRIPTION

In the following description, for purposes of explanation, specificnumbers, materials and configurations are set forth in order to providea thorough understanding of the present invention. However, it will beapparent to one skilled in the art that the present invention may bepracticed without the specific details. In other instances, well knownfeatures have been omitted or simplified for ease of explanation.Furthermore, for ease of understanding, certain method steps aredelineated as separate steps, however, these separately delineated stepsshould not be construed as necessarily order dependent in theirperformance.

Turning to FIG. 1, a block diagram illustrating one example of a systemincorporating the teachings of the present invention is depicted. Inaccordance with the illustrated example embodiment, system 100 isdepicted comprising supplemental programming provider 104 which receivesprimary programming (e.g., television programming, internet programming,radio programming, satellite programming, etc.) via a number ofalternative mediums. For example, supplemental programming provider 104receives primary programming from wireline sources (cable television,cable radio, computer network sources, telephone line, etc.) via line102. Supplemental programming provider 104 can also receive primaryprogramming from wireless sources such as broadcast television,broadcast radio, infrared computer networks, and the like cumulativelydepicted with signal 102′, via appropriate antennae (not shown).

As will be discussed in greater detail below, supplemental programmingprovider 104 evaluates primary programming information received fromvarious sources (e.g., cable 102, signal 102′, an electronic programguide (EPG), or locally stored primary programming) against individualsystem user preferences for predetermined content criteria thatcorresponds with the individual system user preferences and personality,whereupon the supplemental programming provider 104 outputs personalizedsupplemental programming associated with the predetermined contentcriteria via line 106 to the individual elements of an entertainmentsystem (e.g., television system, audio system, computer system, etc.),cumulatively identified within system 100 as entertainment system 108.That is to say, supplemental programming provider 104 continuouslyevaluates primary programming information for content that satisfies thepredetermined content criteria found within a user profile for thecurrent user of system 100, and, when the predetermined content criteriaof the user profile is satisfied, supplemental programming provider 104outputs supplemental programming associated with the predeterminedcontent criteria. In addition to the foregoing, supplemental programmingprovider 104 monitors trends in information obtained from primaryprogramming to provide supplemental programming associated with thosetrends, and provides a host of external outputs, cumulatively identifiedby line 110 to control environmental elements such as room lighting,temperature controls (i.e., thermostat), and the like. Thus, as will bedescribed in greater detail below, the supplemental programming may beinformative, educational, entertaining, and/or program enhancing.

In one embodiment, supplemental programming provider 104 may be acomputer system incorporated with the teachings of the presentinvention, as will be discussed further with respect to FIG. 7, below.In another embodiment, supplemental programming provider 104 may be a“set-top” box endowed with the necessary processing power andincorporated with the teachings of the present invention. Alternatively,supplemental programming provider 104 may well be incorporated intoindividual elements within system 100 (e.g., television system, stereotuner, or computer network).

Having introduced the concept of the innovative supplemental programmingprovider 104 above within the context of system 100, FIG. 2 provides ablock diagram which illustrates one example architecture of supplementalprogramming provider 200 suitable for use in system 100, incorporatingthe teachings of the present invention. In one embodiment, supplementalprogramming provider 200 is beneficially integrated into system 100 assupplemental programming provider 104. As illustrated in the functionalblock diagram of FIG. 2, example supplemental programming provider 200comprises commentary provider 206 including keyword search engine 208and content evaluator 214, supplemental programming database 210 (alsoreferred to as a keyword specification module), primary programmingdatabase 222 (also referred to as a program description source, or anelectronic program guide (EPG)), commentary generator module 216 andcommentary delivery module 218, communicatively coupled together asdepicted.

In the illustrated embodiment of FIG. 2, supplemental programmingprovider 200 receives primary programming via line 202 at an input portwhich directs the primary programming to commentary provider 206. Asdepicted, the primary programming received via line 202 is intended torepresent primary programming received via wireline sources (e.g., line102 in system 100) and wireless sources (e.g., signal 102′ in system100). In one embodiment, commentary provider 206 receives primaryprogramming via line 202, and provides the primary programming tokeyword search engine 210 and content evaluator 214. If the primaryprogramming contains text information, such as the closed captioninformation found in the VBI of a television signal, or computer datacommunications, keyword search engine 208 evaluates the received textinformation for content that satisfies the predetermined contentcriteria. In addition, the received primary programming is routed tocontent evaluator 214, which evaluates the received primary programmingfor audio content and video/graphical content which satisfiespredetermined content criteria. Additionally, commentary provider 206analyzes primary programming for trends associated with thepredetermined content criteria. In one embodiment, the trend informationis stored locally within commentary generator 206, while in alternateembodiments, the trend information is stored in an externally accessiblestorage location. It should be understood that alternate embodiments ofsupplemental program provider 200 may include a filter (or filters) inthe front end of supplemental program provider 200 to filter textinformation from received primary programming, providing only textinformation to keyword search engine 210, while the remainingprogramming content (e.g., audio, video/graphical, etc.) is provided tocontent evaluator 214. One skilled in the art will appreciate thatalthough commentary provider 206 is depicted in the illustratedembodiment as including both keyword search engine 208 and contentevaluator 214, alternate embodiments of the present invention may bepracticed with only the keyword search engine 208, or the contentevaluator 214, without deviating from the spirit and scope of thepresent invention.

In one embodiment of the present invention, the predetermined contentcriteria employed by keyword search engine 208 to evaluate the receivedprimary programming is saved in user profiles in supplementalprogramming database 210. In one embodiment, supplemental programmingdatabase 210 includes a list of predetermined content criteria (e.g.,keywords, audio or visual) with corresponding supplemental programmingassociated with each of the predetermined content criteria entries, foreach of a plurality of system users. In alternate embodiments,supplemental programming database 210 may well include additional userpreference/profile information associated with the preferred systemenvironment for the corresponding system user. In accordance with theillustrated embodiment, the predetermined content criteria may bedefault settings provided by the manufacturer, or user defined contentcriteria entered in user profiles of the supplemental programmingdatabase 210 by corresponding individual users of supplementalprogramming provider 200. Jumping ahead to FIG. 3, one example of asupplemental programming database (i.e., supplemental programmingdatabase 300) is illustrated.

As depicted in the illustrated example embodiment of FIG. 3,supplemental programming database 300 including the individual userprofiles is a three-dimensional relational database. In the illustratedembodiment, the y-axis is characterized by identifying the genre 302 ofthe predetermined content criteria and the associated supplementalprogramming. Those skilled in the art will appreciate that genreinformation 302 is but one of a number of alternative means by which theinformation within supplemental programming database 300 may beorganized. Thus, a number of suitable alternative approaches exist fororganizing the information of supplemental programming database 310,without departing from the spirit or scope of the present invention. Thex-axis is characterized by default content criteria 304, and userspecified content criteria in the form of text 306, video/graphical 308and audio 310 content. Corresponding supplemental programming isprovided in the form of text 312, video/graphical 314 and audio 316supplemental programming. Moreover, audio supplemental programming 316may be generated in a number of alternative “personalities” (e.g.,Beavis, John Wayne, excited person, etc.) dictated by the personalityindex of column 318. In addition, personality index 318 may be reliedupon to produce supplemental programming corresponding to thepersonality of the user.

As depicted in the illustrated example of FIG. 3, the z-axis ofsupplemental programming database 300 provides multiple “pages” of thex- and y-axes (user profile) corresponding to a plurality of systemusers of system 100. In an alternate embodiment, supplementalprogramming database 300 may simply contain a list of keywords with acorresponding list of supplemental programming responses. In yet anotherembodiment, supplemental programming database may simply include a listof keywords, relying on commentary provider 206 to store and determinewhich supplemental programming response is appropriate when thepredetermined content criteria has been satisfied.

As described within the context of the present invention, supplementalprogramming is intended to include a wide variety of content and media.In one embodiment, the content of the supplemental programming may beinformative (e.g., a definition of a spoken word, or a translation of aforeign language), or entertaining (e.g., a comment on a particularcelebrity). In one embodiment, supplemental programming may includeaudio commentary on the received primary programming, video clipsinterjected in a pop-up window of, for example, a television or monitor,or text displayed on a television or computer terminal in response toreceived primary programming. In accordance with the illustratedembodiment, supplemental programming database 210 may be preloaded witha number of predetermined content criteria (e.g., default contentcriteria) with corresponding supplemental programming. In addition,supplemental programming provider 200 provides a user interface whichallows a user of the system to enter personalized content criteria(e.g., user specified content criteria) corresponding to a wide varietyof media, and the associated supplemental programming corresponding tothe predetermined content criteria. Those skilled in the art willappreciate that although supplemental programming database 300 isdepicted as a three-dimensional relational database, this is for ease ofexplanation only. That is, databases of greater or lessor complexity maybe beneficially substituted for supplemental programming database 300,with a corresponding effect on the amount and complexity of theinformation contained therein.

In addition to evaluating the received primary programming for thepredetermined content criteria of supplemental programming database 210,in one embodiment keyword search engine 208 also searches primaryprogramming database 222 for programming description information thatsatisfies the predetermined content criteria found in supplementalprogramming database 210. Primary programming database 222 containsprogram description information on the primary programming availablefrom a wide variety of sources. In one embodiment, for example, primaryprogramming database 222 is a localized version of an on-lineprogramming guide (e.g., an electronic program guide (EPG)), and theprogram description information is a summation of the programmingavailable from a particular source at a particular time. One example ofa primary programming database is illustrated in FIG. 4.

In the illustrated embodiment of FIG. 4, primary programming database400 is a three-dimensional database, with primary programming referencedby time of day on the x-axis, primary programming source indicated onthe y-axis, organized by the day of the week and month in the z-axis. Inthe illustrated embodiment, primary programming database 400 is updatedon a monthly basis, however those skilled in the art will recognize thatprimary programming database 400 may be updated more frequently. In theillustrated example of FIG. 4, a 24-hour day is divided into half-hoursegments 404, 406, etc. In one embodiment, the primary programminginformation corresponding to the source of the primary programming andthe time of day contains primary programming description information inthe form of text. Accordingly, in the context of FIG. 2, keyword searchengine 208 searches the primary programming database 222 correspondingto the time/source of the primary programming for text that satisfiesthe predetermined content criteria of supplemental programming database210. Although primary programming database 222 is integrated withsupplemental programming provider 200 in the example embodiment of FIG.2, those skilled in the art will appreciate that primary programmingdatabase 222 may well be an external source of program descriptioninformation, accessible by supplemental programming provider 200 asnecessary.

Continuing with FIG. 2, supplemental programming provider 200 alsoincludes content evaluator 214 for evaluating the audio components andvideo/graphical components of the primary programming, an EPG, or storedprogramming for the predetermined content criteria associated with theuser profiles stored in supplemental programming database 210. Inparticular, content evaluator 214 analyzes audio input andvideo/graphical input for matches against the audio and/orvideo/graphical predetermined content criteria (e.g., found in columns316 and 314 respectively) of supplemental programming database 210. Inone embodiment, for example, content evaluator 214 utilizes a speechcomparator to evaluate the audio content of the received primaryprogramming for audio content which satisfies the predetermined audiocontent criteria (e.g., as found in column 316) of supplementalprogramming database 210. In one embodiment, content evaluator 214similarly utilizes a video/graphical comparator to evaluate thevideo/graphical images of the received primary programming for imageswhich satisfy the predetermined video/graphical content criteria (e.g.,as found in column 314) of supplemental programming database 210.Devices which analyze audio information and devices which analyzevideo/graphical information are known to those skilled in the art, thus,further description is not necessary.

With continued reference to the example embodiment of FIG. 2, if thepredetermined content criteria is satisfied by the received primaryprogramming, or corresponding description information from primaryprogramming database 222, the appropriate supplemental programming issupplied to commentary generator 216 from the supplemental programmingdatabase 210 by keyword search engine 208 or content evaluator 214,respectively. In the illustrated embodiment, commentary generator 216generates the supplemental programming from the input supplied by eitherkeyword search engine 208 or content evaluator 214. For example, if thesupplemental programming corresponding to the predetermined contentcriteria is comprised of audio information, commentary generator 216generates an audio signal containing the supplemental programmingcontent, in the personality identified by personality index 318. In analternate embodiment, keyword search engine 208 or content evaluator 214supply commentary generator 216 with an index identifying a file whichcontains the supplemental programming. For example, with reference toFIG. 3, if keyword search engine 208 receives primary programming withthe closed caption text reading “Michigan Touchdown”, keyword searchengine 208 provides commentary generator 216 with the content of the“Michigan Fight Song”. Consequently, commentary generator 216 generatesaudio supplemental programming from the Michigan. Fight Song inputreceived from keyword search engine 208. Thus, in one embodiment,supplemental programming provider 200 monitors primary programming, orthe primary programming database for information corresponding to thepredetermined content criteria, and provides the associated supplementalprogramming content identified in supplemental programming database 210.

In an alternate embodiment, commentary provider 206 monitors primaryprogramming for information trends, and provides supplementalprogramming in accordance with the analyzed trend information. Forexample, if from a user profile it is apparent that a user is interestedin the performance of Intel stock, commentary provider will analyze thetrend of the stock performance, providing supplemental programming asappropriate. In one embodiment, the trend information is stored locallywithin commentary provider 206, and as primary programming is identifiedsatisfying a predetermined content criteria associated with theperformance of Intel stock, the corresponding supplemental programmingis provided. In an alternate embodiment, the trend information may bestored remotely and accessed as needed by commentary provider 206.Another example wherein commentary provider 206 analyzes primaryprogramming for trend information is, in accordance with the Michiganfootball game example above, commentary generator determines in thethird quarter that Michigan is down by a touchdown, commentary provider206 generates audio supplemental programming to the effect of “Let's Go,Michigan”, in a corresponding personality.

In yet another embodiment, supplemental programming provider 200analyzes the predetermined content criteria of a particular user profileto develop a “personality profile”for a user, and automaticallygenerates supplemental programming in accordance with the generatedpersonality profile. That is to say, supplemental programming provider200 produces supplemental programming based on a “personality profile”identified in the user profile stored in supplemental programmingdatabase 210. In one embodiment, for example, a teenager is viewing atelevision show with a considerable amount of action—explosions,gunfire, etc. Based on the user profile associated with the teenagerstored in supplemental programming database 210, supplementalprogramming provider 200 develops a personality profile for the teenagerand identifies an affinity for such action. Consequently, based on thepersonality profile developed by supplemental programming provider 200,commentary generator 216 generates a three-dimensional animated figurein a comer of the viewable screen of the television while providing theaudio commentary “cool, man!”, in accordance with the personality indexassociated with the teenager. Thus, rather than relying onpre-programmed supplemental programming obtained from supplementalprogramming database 210, supplemental programming provider 200 is ableto analyze the personality of the user (based on the user profile) toprovide appropriate supplemental programming. In alternate embodiments,the user may influence the personality profile as programmingpreferences change.

With continued reference to FIG. 2, the supplemental programminggenerated by commentary generator 216 is supplied to a commentarydelivery module (e.g., commentary delivery module 218). In oneembodiment, commentary delivery module 218 synchronizes the supplementalprogramming with the primary programming for delivery to the appropriatesystem element (e.g., television, audio components, computer system,etc.). In one embodiment, commentary delivery module 218 supplies onlythe supplemental programming to the appropriate system element (e.g.,television, audio component(s), computer system, etc.). In an alternateembodiment, commentary generator 216 supplies supplemental programmingto the appropriate system element.

In an alternate embodiment of supplemental programming provider 200,supplemental programming may be generated as a background process andsupplied to commentary provider 206, which stores it for subsequent useas dictated by keyword search engine 208 or content evaluator 214. Inthis alternate embodiment, commentary provider 206 supplies thesupplemental programming directly to commentary delivery module 218without the intervening commentary generator module 216.

Turning now to FIGS. 5 and 6, flow charts illustrating one embodiment ofthe method steps for automatically providing personalized supplementalprogramming are provided. For ease of explanation, and not limitation,the method of FIGS. 5 and 6 will be developed in the context of system100 incorporating supplemental programming provider 200, supplementalprogramming database 300 and primary programming database 400. Asillustrated, the method starts, step 500, wherein a user (e.g.,user_(—)1) begins using system 100, thereby causing system 100 to beginto receive primary programming. Accordingly, supplemental programprovider 104 receives the primary programming at commentary provider 206via line 102, step 502. In step 504, the primary programming isevaluated for predetermined content criteria. Greater detail of suchevaluation will be discussed in greater detail below, with reference toFIG. 6. In step 506, supplemental programming provider 104 determineswhether the predetermined content criteria has been satisfied. If so,supplemental programming provider 104 provides the appropriate systemcomponent(s) with supplemental programming from supplemental programmingdatabase 210 that is associated with the predetermined content criteriasatisfied, step 508. In an alternate embodiment, upon satisfying thepredetermined content criteria, supplemental programming provider 104issues supplemental programming to the appropriate system component(s)that does not, necessarily, correspond to the primary programming, butis randomly generated. Having provided the supplemental programming instep 508 or, if the predetermined content criteria was not satisfied instep 506, the process loops back to step 502. The method continues untilthe system is turned off, or the user disables the supplemental programprovider.

As alluded to above, FIG. 6 is a flow chart illustrating the methodsteps for evaluating the primary programming and/or programmingdescription information obtained from primary programming database 222for predetermined content criteria (i.e., step 504), in accordance withone embodiment of the present invention. In accordance with theillustrated example embodiment, keyword search engine 208 accessesprimary programming database for description information correspondingto the time/source of the received primary programming, step 602. Instep 604, commentary provider 206 accesses the predetermined contentcriteria of the supplemental programming database 210 for use by keywordsearch engine 208 and content evaluator 214. Keyword search engine 208evaluates the textual information from the received primary programmingand/or the description information from primary programming database222, against the predetermined content criteria available insupplemental programming database 210, step 606. Similarly, contentevaluator 214 evaluates the audio content and the video/graphicalcontent of the received primary programming against the predeterminedcontent criteria available in supplemental programming database 210,step 608. In one embodiment, the evaluation of criteria in the selectionof content is dependent on the user profile and the content personality.That is, if the primary programming is in accordance with the“personality profile” for a current system user, supplementalprogramming provider 200 provides supplemental programming associatedwith the primary programming. In accordance with the illustrated exampleembodiment, if either keyword search engine 208 or content evaluator 214identifies primary programming that satisfies the predetermined contentcriteria, it supplies commentary generator 216 with the appropriatesupplemental programming, returning to step 506.

In one embodiment, except for the incorporated teachings of the presentinvention (described above), supplemental programming provider 104 isintended to represent a broad, category of computer systems known in theart. An example of such a computer system is a desktop computer systemequipped with a high performance microprocessor(s), such as the Pentium®processor, Pentium® Pro processor, or Pentium® II processor manufacturedby and commonly available from Intel Corporation of Santa Clara, Calif.;including any of a number of audio and video input and outputperipherals/interfaces for receiving, digitizing, compressing anddecompressing audio and video signals. It is to be appreciated that thehousing size and design for supplemental programming provider 104 may bealtered, allowing it to better visually fit within system 100.Accordingly, supplemental programming provider 104 may well be embodiedin a “set-top” box incorporated with the teachings of the presentinvention.

FIG. 7 provides a block diagram of a computer system (e.g., system 700)incorporated with the teachings of the present invention. In oneembodiment, system 700 is supplemental programming provider 104 of FIG.1. In the illustrated embodiment, system 700 includes at least oneprocessor (e.g., processor 702) and cache memory 704 coupled to eachother as shown. Additionally, system 700 includes high performanceinput/output (I/O) bus 706 and standard I/O bus 708, as shown. Hostbridge 710 couples processor 702 to high performance I/O bus 706,whereas I/O bus bridge 712 couples high performance I/O bus 706 tostandard I/O bus 708. Coupled to high performance I/O bus 706 arenetwork/communication interface 724, system memory 714, audio/videointerface board 730, supplemental programming provider 732 and videomemory 716. In turn, display device 718 is coupled to video memory 716.Coupled to standard I/O bus 708 are mass storage device 720 keyboard andpointing device 722, and I/O ports 726. In one embodiment, keyboard andpointing device are coupled to standard I/O bus 708 with a serialcommunication interface cable, while in alternate embodiments it may becommunicatively coupled with an infrared (IR) interface or aradio-frequency (RF) interface.

With continued reference to FIG. 7, elements 702-730 perform theirconventional functions as known in the art. In particular,network/communication interface 724 is used to provide communicationbetween system 700 and any of a wide range of conventional networks,such as Ethernet, token ring,he Internet, etc. Similarly, audio/videointerface board 730 is used to receive broadcast communications from anyof a wide range of conventional broadcast media such as RF broadcasts,satellite broadcasts, cable broadcasts, etc. Mass storage device 720 isused to provide permanent storage for the data and programminginstructions to implement the above described functions, whereas systemmemory 714 is used to provide temporary storage for the data andprogramming instructions when executed by processor 702. I/O ports 726are one or more serial and/or parallel communication ports used toprovide communication between additional peripheral devices which may becoupled to system 700 (e.g., stereo, speakers, etc.). Collectively, theelements coupled to system 700 are intended to represent a broadcategory of hardware systems, including but not limited to generalpurpose computer systems based on the Pentium® processor, the Pentium®Pro processor, or the Pentium® II processor commonly available fromIntel Corporation of Santa Clara, Calif.

In one embodiment, supplemental programming provider 732 includes theelements of supplemental programming provider 200, including theelements necessary for performing audio analysis and video/graphicalanalysis of received primary programming and/or program descriptioninformation obtained from a primary programming database. In analternate embodiment, supplemental programming provider 732 is comprisedof commentary provider 206 and commentary generator module 216, whilethe supplemental programming database 210 and primary programmingdatabase 222 are stored on mass storage 720, or are remotely located andcommunicatively coupled to supplementary program provider 732 vianetwork/communication interface 724. In one embodiment, supplementalprogramming provider 732 receives primary programming fromnetwork/communication interface 724 and/or audio/video tuner interface730, evaluates the primary programming, and returns supplementalprogramming to the appropriate elements in accordance with the teachingsabove. In an alternate embodiment, supplemental programming provider 732receives primary programming via an antennae (not shown) coupled to I/Oports 726, supplying supplemental programming to network/communicationinterface 724 and/or audio/video tuner interface 730. In an alternateembodiment, supplemental programming provider 732 receives primaryprogramming via I/O ports 726 and supplies supplemental programming tonetwork/communication interface 724 and/or audio/video tuner interface730, in accordance with the teachings above.

It is to be appreciated that various components of system 700 may bere-arranged. For example, cache 704 may be on-chip with processor 702.Alternatively, cache 704 and processor 702 may be packed together as a“processor module”, with processor 702 being referred to as the“processor core”. Furthermore, mass storage device 720, keyboard andpointing device 722, and/or display device 718 and video memory 716 maynot be included in system 700. Additionally, the peripheral devicesshown coupled to standard I/O bus 708 may, in alternate embodiments, becoupled to high performance I/O bus 706; in addition, in someimplementations only a single bus may exist with the components ofsystem 700 being coupled to the single bus. Furthermore, additionalcomponents may be included in system 700, such as additional processors,storage devices, or memories.

In one embodiment, rather than including a separate supplementalprogramming provider 732, the innovative features of the presentinvention discussed above may be implemented as a series of softwareroutines run by system 700 of FIG. 7. These software routines run aplurality or series of instructions to be executed by a processor, suchas processor 702 in system 700. Initially, the series of instructionsare stored on a storage device, such as mass storage device 720. It isto be appreciated that the series of instructions may be stored on anyconventional storage device, such as a diskette, CD ROM, magnetic tape,digital versatile disk (DVD) (also referred to as a digital video disk),laser disk, ROM, flash memory, etc. It is also to be appreciated thatthe series of instructions need not be stored locally, and could bereceived from a remote storage device, such as a server on a network,via network/communication interface 724. The instructions are copiedfrom the storage device, such as mass storage device 720, into systemmemory 714 and then accessed and executed by processor 702. In oneembodiment, these software routines are written in the C++ programminglanguage. It is to be appreciated, however, that these routines may beimplemented in any of a wide variety of programming languages. Inalternate embodiments, the present invention may be implemented indiscrete hardware or firmware. For example, an application specificintegrated circuit (ASIC) could be programmed with the above describedfunctions of the present invention.

FIG. 8 is a block diagram illustrating the software elements accordingto one embodiment of the present invention. In particular softwarearchitecture 800 is shown comprising supplemental programmingapplication 802, supplemental programming agent 804 with associatedcommentary provider 806 including keyword search engine 808 and contentevaluator module 810, commentary generator module 812 and commentarydelivery module 814, and an operating system 820 with associateddrivers. In particular, supplemental programming application 802interfaces with supplemental programming agent 804 and provides the userinterface for supplemental programming provider 104 of FIG. 1.

In one embodiment, supplemental programming agent 804 is coupled to andable to obtain information from supplemental programming database 814,and primary programming database 816. In an alternate embodiment,supplemental programming database 814 and/or primary programmingdatabase 816 are integrated modules of supplemental programming agent804. In one embodiment, commentary provider 806 performs the steps ofevaluating the primary programming, and the program descriptioninformation obtained from primary programming database 816 against thepredetermined content criteria stored in supplemental programmingdatabase 814. In the illustrated example embodiment, keyword searchengine 808 and content evaluator module 810 of commentary provider 806perform such evaluation. In one embodiment, upon receiving a triggerfrom commentary provider 806 that the predetermined content criteria hasbeen satisfied, commentary generator module 812 generates supplementalprogramming associated with the satisfied predetermined contentcriteria. In an alternate embodiment, commentary generator module 812generates supplemental programming as a background process for use bycommentary provider 806 when the predetermined content criteria has beensatisfied. In either instance, supplemental programming is supplied tocommentary delivery module 813 for delivery to supplemental programmingapplication 802 and appropriate system elements via the operating system820 and basic input/output system (BIOS) 822, which will be discussed ingreater detail below. In one embodiment, commentary delivery module 813receives the supplemental programming as well as the primary programmingfor delivery to the appropriate system elements.

As alluded to above, BIOS 822 provides an interface between operatingsystem 820 and the various I/O devices coupled to the hardware system.Operating system 820 is a software service which provides an interfacebetween BIOS 822 and supplemental programming agent 804 as well as othersoftware applications, if any, being executed by a computer systemwithin which the present invention is practiced (e.g., system 700). C.Operating system 820 provides an interface, such as a graphical userinterface (GUI), between the user and the system controller. Accordingto one embodiment of the present invention, operating system 820 is theWindows™ 95 operating system, available from Microsoft Corporation ofRedmond, Wash. However, it is to be appreciated that the presentinvention may be used with any other conventional operating system, suchas, for example, other versions of Microsoft Windows™ (for example,Windows™ 3.0, Windows™ 3.1, Windows™ NT, or Windows™ CE), Microsoft DOS,OS/2, available from International Business Machines Corporation ofArmonk, N.Y., the Apple Macintosh Operating System, available from AppleComputer Incorporated of Cupertino, Calif., the NeXTSTEP® operatingsystem available from Apple Computer Incorporated, or the UNIX operatingsystem, available from Santa Cruz Operations of Santa Cruz, Calif.

Thus, the present invention automatically provides personalizedsupplemental programming in response to primary programming thatsatisfies predetermined content criteria. As discussed above, thepresent invention advantageously monitors and evaluates received primaryprogramming for predetermined content criteria, and automaticallysupplies personalized supplemental programming when such predeterminedcontent criteria is satisfied.

While the method and apparatus of the present invention has beendescribed in terms of the above illustrated embodiments, those skilledin the art will recognize that the invention is not limited to theembodiments so described. The present invention can be practiced withmodification and alteration within the spirit and scope of the appendedclaims. For example, although depicted as separate components,supplemental program provider 104 may be incorporated into any number ofsystem components (e.g., a television/monitor/video cassetterecorder/playback device) within system 100. Further, supplementalprogram provider 104 may not include all of the elements of FIG. 2 or 5,or may, alternatively, include additional elements. Accordingly, thedescription is to be regarded as illustrative instead of restrictive onthe present invention.

Thus, a method and apparatus for automatically providing supplementalprogramming has been described.

We claim:
 1. A user entertainment system comprising: a first componentof the user entertainment system operative to supply supplementalprogramming; a second component of the user entertainment systemoperative to supply primary programming from a broadcast receiver; and aprocessor agent of the user entertainment system, communicativelycoupled to the first and second components, operative to evaluate theprimary programming for content that satisfies predetermined contentcriteria that are associated with supplemental programming, the contentcriteria corresponding to individual user preferences for a current userof the entertainment system and operative to provide personalizedprogramming when the content criteria arc satisfied, the personalizedprogramming comprising the primary programming provided simultaneouslywith associated supplemental programming selected based on the satisfiedcontent criteria.
 2. The entertainment system of claim 1, wherein thefirst component stores content criteria for at least a subset ofentertainment system users.
 3. The apparatus of claim 2, wherein theentertainment system develops a personality profile for each of the atleast a subset of entertainment system users based on at least thecontent criteria for the at least a subset of entertainment systemusers.
 4. The apparatus of claim 3, wherein the processor agent isoperative to generate supplemental programming in accordance with thedeveloped personality profile.
 5. The apparatus of claim 3, wherein theprocessor agent provides the selected supplemental programming in apersonality corresponding to the developed personality profile.
 6. Theapparatus of claim 1, wherein the content criteria and associatedsupplemental programming is provided by a user of the entertainmentsystem.
 7. The apparatus of claim 1, wherein the content criteria andassociated supplemental programming is provided by the manufacturer ofthe entertainment system.
 8. The apparatus of claim 1, wherein thecontent criteria and associated supplemental programming are provided ona medium readable by the supplemental programing.
 9. A methodcomprising: (a) receiving primary programming from an external broadcastprograming source at a user entertainment system; (b) evaluating theprimary programming at the user entertainment system for content thatsatisfies predetermined content criteria that are associated withsupplemental programming, the content criteria corresponding toindividual user preferences for a current user of the entertainmentsystem; (c) providing personalized programing when the content criteriaare satisfied, wherein the personalized programming comprises theprimary programming provided simultaneously with associated supplementalprogramming selected based on the satisfied content criteria.
 10. Themethod of claim 9, wherein evaluating the primary programming comprises:(a) accessing a primary programming database to retrieve primaryprogramming description information corresponding to the external sourceand time of day; (b) searching a supplemental programming databasecorresponding to the system user for predetermined content criteria thatmatch text components of the received primary programming or theretrieved description information; and (c) evaluating audio/videocomponents of the received primary programming for audio/videoinformation that matches predetermined audio/video content criteriastored in the supplemental programming database corresponding to thesystem user.
 11. The method of claim 9, wherein the content criteria andassociated supplemental programming is entered into the supplementalprogramming database by a system user.
 12. The method of claim 9,wherein the content criteria is default content criteria of thesupplemental programming database and associated supplementalprogramming is default supplemental programming.
 13. A machine readablemedium for operation on a user entertainment system having storedtherein a plurality of machine executable instructions, said pluralityof instructions when executed by a user entertainment system, causingsaid user entertainment system to perform receiving primary programmingat the user entertainment system from an external source of broadcastprogramming, evaluating the primary programming at the userentertainment system for content that satisfies predetermined contentcriteria that are associated with supplemental programming, andproviding personalized programming when the content criteria aresatisfied wherein the personalized programming comprises the primaryprogramming provided simultaneously with associated supplementalprogramming selected based on the satisfied content criteria.
 14. Themachine readable medium of claim 13, further comprising instructions forallowing a user to define the content criteria and the associatedsupplemental programming.
 15. The machine readable medium of claim 14,further comprising instructions for developing a personality profile forthe user, based on the content criteria, and for independentlygenerating supplemental programming based on and in accordance with thepersonality profile.
 16. The machine readable medium of claim 13,wherein the personalized programming is associated with the contentcriteria.
 17. A user entertainment system comprising: a first componentof the user entertainment system operative to supply supplementalprogramming; a second component of the user entertainment systemoperative to supply primary programming from a broadcast receiver; and aprocessor agent of the user entertainment system, communicativelycoupled to the first and second components, operative to evaluate theprimary programming for content that satisfies predetermined contentcriteria that are associated with supplemental programming, the contentcriteria corresponding to individual user preferences for a content userof the entertainment system and operative to provide personalizedprogramming when the content criteria arc satisfied, the personalizedprogramming comprising the primary programming superimposed byassociated supplemental programming selected based on the satisfiedcontent criteria.
 18. The apparatus of claim 17, wherein theentertainment system develops a personality profile for a subset ofenticement system users based on content criteria for the subset ofentertainment system users.
 19. The apparatus of claim 17, wherein thecontent criteria and associated supplemental programming are provided bya user of the entertainment system.
 20. A method comprising: receivingprimary programming at a user entertainment system from an externalbroadcast programming source; evaluating the primary programming at theuser entertainment system for content that satisfies predeterminedcontent criteria that are associated with supplemental programming, thecontent criteria corresponding to individual user preferences for acurrent user of the system; a processor agent of the user entertainmentsystem, communicatively personalized programming comprising the primaryprogramming superimposed by associated supplemental programming selectedbased on the satisfied content criteria.
 21. The method of claim 20,further comprising developing a personality profile for the user, basedon the content criteria; and independently generating supplementalprogramming based on and in accordance with the personality profile. 22.The method of claim 20, wherein the personalized programming isassociated with the content criteria.
 23. A machine readable mediumhaving stored thereon a plurality of machine, executable instructions,said plurality of instructions when executed by a user entertainmentsystem, causing said user entertainment system to perform: receivingprimary programming at the user entertainment system from an externalbroadcast programming source; evaluating the primary programming at theuser entertainment system for content that satisfies predeterminedcontent criteria that are associated with supplemental programming, thecontent criteria corresponding to individual user preferences for acurrent user of the system; providing personalized programming when thecontent criteria are satisfied, the personalized programming comprisingthe primary programming superimposed by associated supplementalprogramming selected based on the satisfied content criteria.
 24. Themachine readable medium of claim 23, further comprising instructions forallowing a user to define the content criteria and the associatedsupplemental programming.
 25. The machine readable medium of claim 23,further comprising instructions for developing a personality profile forthe user, based on the content criteria, and for independentlygenerating supplemental programming based on and in accordance with thepersonality profile.
 26. A user entertainment system comprising: a firstcomponent of the user entertainment system operative to supplysupplemental programming; a second component of the user entertainmentsystem operative to supply primary pro gaming from a broadcast receiver;and a processor agent of the user entertainment system, communicativelycoupled to the first aid second components, operative to evaluate theprimary programing for content that satisfies predetermined contentcriteria that are associated with supplemental programming, the contentcriteria corresponding to individual user preferences for a current userof the user entertainment system and operative to provide personalizedprogramming when the content criteria are satisfied, the personalizedprogramming comprising the primary programming and associatedsupplemental programming selected based on the satisfied contentcriteria, at least a portion of the selected supplemental programmingreplacing a component of the primary programming.
 27. The apparatus ofclaim 26, wherein the user entertainment system develops a personalityprofile for a subset of entertainment system users based on contentcriteria for the subset of entertainment system users.
 28. The apparatusof claim 26, wherein the content criteria and associated supplementalprogramming is provided by a user of the entertainment system.
 29. Amethod comprising: receiving primary programming at a user entertainmentsystem from an external broadcast programming source; evaluating theprimary programming at the user entertainment system for content thatsatisfies predetermined content criteria that are associated withsupplemental programming; providing personalized programming when thecontent criteria are satisfied, the personalized programming comprisingthe primary programming and associated supplemental programming selectedbased on the satisfied content criteria, at least a portion of theselected supplemental programming replacing a component of the primaryprogramming.
 30. The method of claim 29, further comprising developing apersonality profile for the user, based on the content criteria; andindependently generating supplemental programming based on and inaccordance with the personality profile.
 31. The method of claim 29,wherein the content criteria and associated supplemental programming areprovided by a user.
 32. A machine readable medium having stored thereona plurality of machine executable instructions, said plurality ofinstructions when executed by a user entertainment system, causing saiduser entertainment system to perform: receiving primary programming atthe user entertainment system from an external broadcast programmingsource; evaluating the primary programming at the user entertainmentsystem for content that satisfies predetermined content criteria thatare associated with supplemental programming; providing personalizedprogramming at the user entertainment system when the content criteriaare satisfied, the personalized programming comprising the primaryprogramming and supplemental programming selected based on the satisfiedcontent criteria, at least a portion of the selected supplementalprogramming replacing a component of the primary programming.
 33. Themachine readable medium of claim 32, further comprising instructions forallowing a user to define the content criteria and the associatedsupplemental programming.
 34. The machine readable medium of claim 32,further comprising instructions for developing a personality profile forthe user, based on the content criteria, and for independentlygenerating supplemental programming based on and in accordance with thepersonality profile providing personalized programming when the contentcriteria are satisfied, the personalized programming comprising theprimary programming superimposed by associated supplemental programingselected based on the satisfied content criteria.